home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga CD-ROM Collection
/
Amiga CD-ROM Collection - Auge 4000 and Cactus and Demo Util.iso
/
cactus
/
27
/
progs
/
multiview
/
multiview.doc
< prev
next >
Wrap
Text File
|
1988-06-14
|
21KB
|
406 lines
CACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUScactus
U U
S MULTIVIEW S
E ********* E
R Übersetzt 3/89 von C.A.C.T.U.S. R
S S
cactusCACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUScactusCACTUS
MULTIVIEW - Version 2.0
von
Wayne Hogue
A.U.R.A.
(Amiga Users of Regina Association)
14. Januar 1988
Endlich hast Du dich hier eingefunden, denn nach diesem ganzen Bildschirm
voll von hübschen Schaltern bist Du heillos verwirrt, und Deine Maus
rotiert förmlich. Also, gib dem kleinen Racker ein Eckchen Käse und lies
in Ruhe weiter!
FÄHIGKEITEN:
------------
1. Folgende Grafikformate können eingelesen werden:
a) IFF - ILBM (InterLeaved Bit Map)
- ACBM (Amiga Continuous Bit Map)
(Note: IFF = Interchange File Format)
b) Atari ST - DEGAS Elite
- NEOchrome
c) Macintosh
d) SPUT - Sonderformat des Basic-Befehls PUT
e) SBOB - Sonderformat der Basic-BOBs
f) DECODE - Bilder aus anderen Formaten heraussuchen
2. Folgende Grafikformate können geschrieben werden:
a) IFF - ILBM ungepackt
- ACBM
b) SPUT - Mit besonderen Header-Informationen
- Ohne besondere Header-Informationen
c) SBOB - Mit besonderen Header-Informationen
- Ohne besondere Header-Informationen
d) Bildstruktur für C-Programmierer
3. Es können gigantische Workbench-Icons entworfen werden.
(Genau das, was Du brauchst, um Dein gutes Programm so richtig
interessant zu machen)
DAS PROGRAMM
------------
Das Programm kann von CLI oder Workbench aus gestartet werden. Nun
öffnet sich ein Fenster, das in der Größe reduziert werden kann, um
überall auf den Bildschirm zu passen. Alle Programmteile werden durch
Anklicken eines Schalters aufgerufen. Wenn Du in der Anleitung ein Wort
in Großbuchstaben liest wie z.B. CLOSE, dann beziehe ich mich auf einen
derartigen Schalter.
PROGRAMMENDE
------------
Nun, fangen wir einmal am Ende an. In der linken oberen Fensterecke
findest Du den CLOSEWINDOW-Schalter. Bei Betätigung dieses Schalters
erscheint eine kleine Abfrage, ob Du das Programm wirklich verlassen
möchtest oder Deine Arbeit fortsetzen willst.
FENSTERGRÖßE
------------
Genau unter CLOSEWINDOW findest Du den Schalter SIZEWINDOW. Mit diesem
Schalter schrumpft oder vergrößert sich das Fenster je nach aktuellem
Zustand. In seiner kleinen Form kannst Du das Fenster beliebig auf der
gesamten Workbench plazieren. Bei seiner Vergrößerung plaziert sich
das fenster dann automatisch richtig.
VIEWS UND VIEWPORTS
-------------------
Also, liebe Freaks, bitte drückt jetzt mal alle drei Augen zu, wenn ich
in ganz einfachen Worten erkläre, wie es auf dem Bildschirm aussieht.
Unter SIZEWINDOW gibt es zwei schalter, die bestimmen, wie Du das Bild
siehst. Ihre Namen lauten SCREEN und SUPER. Mit SCREEN wird ein normaler
Amiga-Bildschirm erzeugt, auf dem das gesamte Bild gezeigt wird.
Dagegen erzeugt SUPER (Nomen est omen; recht ham's, die ollen Lateiner)
eine Bitmap, die ein Bild aufnehmen kann, das größer ist als das, was
auf dem Bildschirm zu sehen ist. Nach Anklicken von SUPER mußt Du dich
allerdings entscheiden, wie groß die Bitmap überhaupt werden soll.
Größtmöglicher Wert ist 1.024 mal 1.024 Pixel. Mit den Schaltern
SUPERWIDTH und SUPERHEIGHT kannst Du nun die gewünschte Größe eingeben.
Klick die Dinger einfach an und gib die gewünschten Werte an.
Übrigens ist eine größtmögliche Bitmap mit maximaler Tiefe zu groß
für die 512K zur Verfügung stehenden CHIP-Speichers.
Nach der Entscheidung für SCREEN oder SUPER mußt Du nun noch festlegen,
wieviel Farben das Bild besitzen soll. Das wird durch die Bildtiefe
angegeben.
TIEFE FARBEN
----- ------
1 2
2 4
3 8
4 16
5 32
6 4096
Je mehr Farben benutzt werden, desto mehr CHIP-Speicher wird benötigt.
Benutze nun WIDTH (320 oder 640) und HEIGHT (200 oder 400) (*** Sorry;
leider kein PAL! -Der Üble Setzer- ***) um die gewünschte Bildschirm-
auflösung anzugeben (Anmerkung: Um OVERSCAN zu erzielen, mußt Du nur
die Schaltereinstellung verändern). Eine Super-Bitmap sollte tatsäch-
lich größer sein als die hier eingestellte Bildschirmgröße. Falls Du
eine Tiefe von 5 oder 6 zusammen mit einer Super-Bitmap verwendest und
Du gleichzeitig die Bildschirmauflösung auf 640 Pixel Breite stellst,
werden nur 4 Bitplanes (*** Entspricht einer Tiefe von 4 -Der über-
setzer- ***) dargestellt.
Mit OPEN wird nun der Bildschirm bzw. die Super-Bitmap endgültig
erzeugt. Mit DISPLAY siehst Du nur einen leeren Bildschirm, denn
bis jetzt wurde ja noch kein Bild geladen. Mit der Tastenkombination
Linke Amigataste-N bzw. den versteckten Vorder-/Hintergrundschaltern
oben rechts kannst Du zwischen den einzelnen Bildschirmen hin- und her-
schalten; den SUPER-Überblick erhältst Du mit den Tasten RETURN oder
ENTER. Aus irgendeinem hundsgemeinen Grund funktioniert die Methode
mit RETURN und ENTER beim ersten Darstellen des SUPER-Überblickes
nicht.
Der CLOSE-Schalter schließt den Bildschirm oder den SUPER-Überblick
wieder. Wenn die Bitmap des SUPER-Überblickes größer ist als 320 mal
200 Pixel, dann kannst Du auch die Bildschirmauflösung ändern, ohne
einen Teil des Bildes zu verlieren. Wähle mit WIDTH und HEIGHT
einfach eine neue Auflösung aus und klicke danach RESIZE an.
Während der Darstellung des SUPER-Überblicks kannst Du auch das Bild
mit den Tasten des Ziffernblocks herumscrollen. Die tasten ersetzen
in diesem Falle einen Joystick. Mit den Hoch-/Runter-Pfeilen kannst
Du die Scrollgeschwindigkeit ändern.
Falls ein SCREEN oder SUPER-Überblick geöffnet wurde, wird das Bild
in der von Dir voreingestellten Größe geladen. Möchtest Du, daß das Bild
in seiner originalgröße geladen wird, dann wähle vor dem Laden des
Bildes CLOSE. Bilder in den Formaten Degas, Neo und Macintosh werden
automatisch in der korrekten Größe geladen.
LESEN UND SPEICHERN
-------------------
Oben rechts findest Du PICTURE und COLORMAP. COLORMAP kann nur benutzt
werden, wenn bereits ein Bildschirm oder SUPER-Überblick eröffnet
wurde. Die schalter READ, SAVE und DECODE können sowohl bei PICTURE
als auch bei COLORMAP betätigt werden.
Zum Einlesen eines Bildes wählst Du PICTURE und READ. Unter diesen
beiden Feldern siehst Du einen ganzen Haufen anderer Felder, die
bestimmen, welchen Grafiktyp Du einliest.
Folgende Auswahl steht zur Verfügung:
1. IFF im Format ILBM
2. IFF im Format ACBM
3. SPUT Format mit Header-Informationen
4. SPUT Format ohne Header-Informationen
5. SBOB Format mit Header-Informationen
6. SBOB Format ohne Header-Informationen
7. DEGAS Format für den Atari ST
8. NEO Format für den Atari ST
9. MAC Format für den Macintosh
(Anmerkung: Bei READ sind die Typen 1 bis 4 austauschbar, da die ersten
vier Bytes den Dateityp identifizieren. Es wird allerdings
nicht überprüft, ob der Typ wirklich 4,6,7,8 oder 9 ist,
also könnten einige interessante Dinge passieren.)
Ganz zuletzt wählst Du GO. Jetzt erscheint ein Dateiabfragefenster.
Hier kannst Du nun Laufwerkspfad und Dateinamen durch einfaches Maus-
klicken einstellen. Einfaches Anklicken eines Dateinamens befördert
diesen in das FILE-Feld. Ein zweiter Klick auf diesen Dateinamen
bewirkt dasselbe wie ein Anklicken des Schalters READ links unten im
Abfragefenster (bzw. im entgegengesetzten Falle SAVE oder PICK).
Pfad und Dateiname kannst Du auch direkt in die Felder DRAWER und
FILE eintippen. Probier mal ein bißchen mit dem Dateiabfragefenster
herum, um herauszufinden, was es alles für Dich tun kann. Nach
Auswahl der Datei wird die Grafik eingelesen und dargestellt.
Die Bilder werden etwas langsamer als von anderen Programmen eingelesen
und angezeigt. Das ist deshalb so, weil mein Programm noch jede Menge
Überprüfungen vornimmt, während die Daten entschlüsselt werden.
Bilder von Atari ST und Macintosh habe ich erhalten, indem ich die
Dateien auf einem Atari auf 5,25 Zoll-Disketten gespeichert habe.
Anschließend übertrug ich die Diskette auf einen Amiga mit 5,25 Zoll-
Laufwerk und mit dem Programm auf der Extras-Diskette auf 3,5 Zoll
umkopiert. Die Bilddateien von DEGAS und NEO sind sich sehr ähnlich
und enthalten in den ersten beiden Bytes Informationen über die Bild-
schirmauflösung. Der Bildschirm wird entsprechend dieser Angaben
geöffnet; das Anhängsel am Dateinamen hat nichts zu sagen, so daß
Du die Bilder beliebig benennen kannst. Macintosh-Dateien werden
nicht daraufhin überprüft, ob es sich wirklich um Bilder handelt.
Es wird die korrekte Anzahl von Bytes übersprungen und das Bild
geladen (ich hatte keine Informationen über die Struktur einer
Macintosh-Datei). Das DEGAS-Dateiformat war mir bekannt, so daß ich
die Dateien entschlüsseln konnte. Bei NEO-Bildern hatte ich nur ein
paar Beispiele, so daß die Datenstruktur mit Ausprobieren untersucht
wurde. Atari-Bilder werden auf einen SCREEN geladen, während Macintosh-
Bilder in eine Super-Bitmap geladen werden. Macintosh-Bilder werden
deshalb stets in eine Super-Bitmap geladen, weil ihr Format 576 mal
720 Pixel beträgt.
Um ein angezeigtes Bild zu speichern, betätigst Du PICTURE, SAVE,
Dateityp 1 bis 9 und GO. Nun wählst Du Pfad und Dateinamen im Datei-
abfragefenster aus. Leider können die Bilder nicht in den Formaten
DEGAS, NEO oder MAC gespeichert werden, da ich nicht an einer Übertra-
gung in diese Richtung interessiert bin. Möchtest Du ein SBOB speichern,
erscheint ein etwas anderes Abfragefenster nach GO. Hier bestimmst
Du die Eigenschaften Deines BOB. Mit dem Knopf am linken Rand des
Abfragefensters kannst Du zum Abspeichern das gewohnte Dateiabfrage-
fenster wieder hervorzaubern.
ANMERKUNG: Zur Zeit wird die Größe eines als SBOB abgespeicherten
Bildes noch nicht überprüft. Du kannst also durchaus
Bilder abspeichern, die zu groß für AmigaBasic sind.
Falls Du C-Programmierer bist, kannst Du ein Bild einladen und dann
SAVE_IMAGE und GO anklicken. Ein anderes Abfragefenster erscheint,
mit dem Du das Bild als Struktur speichern kannst. Das ist sicher
besser, als "von Hand" zu rechnen. In einer späteren Version werde
ich es auch ermöglichen, die Bilder als Sprite-Datenstruktur
abzuspeichern.
ENTSCHLÜSSELN
-------------
Auch von anderen Programmen wie z.B. Spielen können Bilder mit etwas
Detektivarbeit herausgezogen werden. Öffne SCREEN oder SUPER und wähle
nun PICTURE, DECODE und GO. Es erscheint wieder mal ein Abfragefenster.
Zuvor muß die Datei aber im CLI mit dem Befehl TYPE Dateiname OPT H
untersucht werden um herauszufinden, wo die Bilderdaten liegen könnten.
Falls Du nichts darüber hinausfindest, dann mußt Du halt anhand der
Bildschirmauflösung und Tiefe raten. Im Abfragefenster gibst Du nun ein,
welche Datei eingelesen werden soll, wieviele Bytes übersprungen werden
und wählst entweder HEX (Hexadezimal) oder DEC (Dezimal). Nun gibst Du
in Dezimal die Breite und Höhe des Bildes an. Außerdem könnten die
Bilddaten sowohl als ACBM oder ILBM im Programm vorliegen bzw. auf dem
ST im Atari-Format. MAC-Bilder werden im ILBM-Format, komprimiert und
mit einer Bitplane, gespeichert. Mit viel Probieren können die Bilder
aus Dateien geholt werden.
Anmerkung: Für unkomprimierte ST-Bilder klickst Du den Atari-Schalter
an. Bei komprimierten wählst Du dagegen IFF!
Beispiel: Das kann bei jeder IFF-Datei gemacht werden
TYPE WOODWITCH OPT H
gibt auf dem Bildschirm folgendes aus:
0000: 464F524D 0000E07E 494C424D 424D4844 FORM...~ILBMBMHD
0010: 00000014 01400154 00000000 05020100 .....@.T........
0020: 001A0A0B 014000C8 434D4150 00000060 .....@..CMAP...`
0030: 000000E0 C0A01010 10202020 404040A0 ......... @@@.
0040: A0207070 10402000 50302060 40308050 . pp.@ .P0 `@0.P
0050: 40B07060 C09080B0 8070A070 60906050 @.p`.....p.p`.`P
0060: 00B00000 90000070 00005000 302010F0 .......p..P.0 ..
0070: F0F0D0D0 D0B0B0B0 90909070 7070A0E0 ...........ppp..
0080: F0D01010 B01010A0 10108010 10701010 .............p..
0090: 44505056 00000068 00000000 0000FFF1 DPPV...h........
00A0: 01680000 014000C8 0002005A 00020000 .h...@.....Z....
00B0: 00020000 00020000 00000000 00000000 ................
00C0: 00000000 00000000 00000000 00000000 ................
00D0: 00140001 FFAC0001 00000000 0000F747 ...............G
00E0: 00004242 00000000 FFFFBDBE 0000F747 ..BB...........G
00F0: 00000000 00000000 00000000 00010002 ................
0100: 43524E47 00000008 FFFF0019 00021012 CRNG............
0110: 43524E47 00000008 00004E78 00040709 CRNG......Nx....
0120: 43524E47 00000008 00FDAB4A FFFFFFF7 CRNG.......J....
0130: 43524E47 00000008 FFFFFFF4 00000000 CRNG............
0140: 424F4459 0000DF3E FCFF22F1 00080004 BODY...>..".....
0150: 00100405 04020800 20261414 06938802 ........ &......
Im Gegensatz zu einem Spielprogramm weiß sieht man hier, wo
man in dieser IFF-Datei nach Daten suchen muß. Die erste
Kolonne gibt die relative Position innerhalb der Datei in
Hexadezimal an. Die nächsten vier Kolonnen geben je 4
Datenbytes, also insgesamt 16, an. Die letzte Kolonne
schließlich listet die durch einen Punkt dargestellten,
nicht druckbaren ASCII-Zeichen auf. Beachte, daß das erste
Byte der Datei die Nummer 0 und nicht 1 trägt.
In einer IFF-Datei findet man die eigentlichen Bild- oder
Brushdaten hinter dem Segmentnamen BODY.
Die ersten vier Bytes nach dem segmentnamen geben die Anzahl
der Datenbytes an, die nun folgen.Das bedeutet, die Bilddaten
selbst beginnen ab Offset $148 (Hexadezimal) bzw. 328
(Dezimal) vom Dateibeginn. Gib in dem Abfragefenster als
Anzahl der zu überspringenden Bytes entweder A4 oder 164 ein
und klicke den Schalter des gewünschten Zahlensystems an.
Hinter dem Segmentnamen BMHD findest Du die die Objektbreite
mit $140 = 320 angegeben und die Objekthöhe als $154 = 340.
Die pageWidth wird angegeben mit $140 = 320 und die pageHeight
als $c8 = 200. Klicke auf CANCEL, um das Abfragefenster zu
schließen und öffne einen Bildschirm mmit der Tiefe 5 und
Breite 320 sowie einer Höhe von 200 oder 400, oder beliebige
andere Werte, je nachdem, ob Du die volle Bildgröße anschauen
möchtest oder nicht. Gib in Dezimal die Objektbreite mit
320 und die Objekthöhe als 200 oder 340, je nachdem, in
welcher Höhe Du den Bildschirm angelegt hast. An dieser
Stelle ist es nich6t möglich, Breite und Höhe in Hexadezimal
anzugeben. Die Bilddaten sind als komprimierte ILBM-Daten
abgespeichert, also klicke auf YES. Wenn Du OKAY wählst, dann
lädt MultiView das Bild zwar ebenfalls richtig, aber irgend
etwas mit den Farben stimmt dann nicht. Es ist daher wichtig,
die richtige Farbdatei zu laden. Klicke dazu auf COLORMAP und
DECODE und es ercsheint ein Abfragefenster. Die Farbdaten
sind im Segment namens CMAP mit dem Offset $30 = 48 abgelegt.
Im IFF-Format wird jede Farbe in 3 Bytes abgelegt, während
der Amiga dazu intern nur 2 Bytes benötigt.
Im Abfragefenster gibst Du nun den Dateinamen WOODWITCH ein,
die Anzahl der zu überspringenden Bytes und klickst entweder
HEX oder DEC an. Zum Schluß klickst Du noch auf IFF, denn
die Farbdaten wurden in diesem Format abgespeichert.
Wenn Du nun noch OKAY anklickst, werden endlich die richtigen
Bildfarben angezeigt.
RIESIGE ICONS ERSTELLEN
-----------------------
Du möchtest vielleicht jemanden mit Deinem Amiga beeindrucken oder Deinem
Verein mal was vorführen, aber Du hast nichts außer diesen kleinen Icons
auf der Workbench. Na dann freu Dich mal, denn jetzt kannst Du
bildschirmgroße Icons erstellen. Dazu lädst Du einfach Dein Lieblings-
malprogramm (Achtung: Der Workbenchbildschirm besitzt nur eine Größe von
640 mal 200 oder 640 mal 400 Punkten mit nur vier Farben!) und entwirfst
Dein eigenes Icon. Dein Riesenicon zeigt auf Wunsch bei Anklicken
sogar ein anderes Bild. dazu mußt Du nur zwei gleichgroße Bilder oder
Brushes zeichnen (ansonsten wird das Zweitbild auf die Größe des ersten
gekürzt). Nun wählst Du in MultiView GIANT_ICON und GO. Jetzt füllst
Du noch alles im Abfragefenster richtig aus und klickst auf OKAY. In
kurzer Zeit erzeugt MultiView nun einen Riesenömmes von Icon. Denke
aber auch daran, daß große Icons mehr CHIP-Speicher brauchen.
Dieses Programm entwirft KEINE Icondateien (Dateien mit der Endung
".info"), sondern ändert nur das Bild eines bereits bestehenden Icons.
Wenn Du eine Icondatei brauchst, dann kopiere Dir einfach ein Icon des
gewünschten Typs unter einem anderen Namen. Um ein Icon vom Typ TOOL
zu erhalten, könntest Du z.B. das Icon der Workbench-Uhr (Clock)
kopieren. Dieses Icon könntest Du mit folgendem Befehl kopieren:
COPY CLOCK.INFO NEUESBILD.INFO
INFORMATIONEN IM CMAP Header
----------------------------------
Die CMAP Dateistruktur lautet:
Bytes Beschreibung
----- ------------
4 Datei ID = CMAP
4 bis 64 Zwei benutzte Bytes pro Farbe
Tiefe = 1; Farben = 2; Bytes = 4
Tiefe = 2; Farben = 4; Bytes = 8
Tiefe = 3; Farben = 8; Bytes = 16
Tiefe = 4; Farben = 16; Bytes = 32
Tiefe = 5; Farben = 32; Bytes = 64
INFORMATIONEN IM SPUT oder SBOB Header
--------------------------------------------
Die Dateistruktur lautet:
Bytes Beschreibung
----- ------------
4 Datei ID = SPUT oder SBOB
2 Obejktbreite
2 Objekthöhe
2 Bildschirmbreite
2 Bildschirmhöhe
2 Bildschirmtiefe
4 bis 64 Zwei benutzte Bytes pro Farbe
Tiefe = 1; Farben = 2; Bytes = 4
Tiefe = 2; Farben = 4; Bytes = 8
Tiefe = 3; Farben = 8; Bytes = 16
Tiefe = 4; Farben = 16; Bytes = 32
Tiefe = 5; Farben = 32; Bytes = 64
4 Anzahl der nachfolgenden Bytes
Variabel PUT oder BOB Datenbytes wie von AmigaBasic benutzt
DAS WÄR'S
---------
Wenn Du bis hierhin gekommen bist, dann nenne ich das Ausdauer. Amüsier
Dich gut mit dem Programm und laß den kleinen Racker hart arbeiten.
(Der Herausgeber: Das Programm schafft es ab und zu, den GURU zu einem
Besuch zu überreden. Das ist äußerst lästig!)
====================================================================
Jonathan P. Crone
Vizepräsident, AURA, (Amiga Users of Regina Associated.)
(Regina, Sask. Canada ) (heh???)
CRONEJP@UREGINA1.BITNET
....rutgers!mimsy!uunet!mcl!cronejp
Na komm schon... Kümmert sich doch wieder niemand einen Dreck drum,
was ich zu sagen habe, oder?
====================================================================